Flow control mechanisms are used in data communications to manage the rate of data transmissions between communication devices, or, more generally, communicating peers. Such mechanisms control the rate of data so that a transmitting peer does not send such a substantial amount of data that the receiving peer is unable to process or receive the entire amount of transmitted data. The amount of data that a peer can receive and/or transmit can vary among peers based on, for example, the processing power of the peer, the network environment within which each peer operates, etc. For example, when one of a pair of communicating peers moves into a different network environment, at least one of the peers may change the flow control mechanism of the communication session to adjust to the new network environment.